402. Remove K Digits - LeetCode Solution


Greedy Stack

Python Code:

class Solution:
    def removeKdigits(self, num: str, k: int) -> str:


        stack = []

        for i in range(len(num)):
            while stack and int(stack[-1]) > int(num[i]) and k:
                k-=1
                stack.pop()

            stack.append(num[i])


        while k:
            stack.pop()
            k-=1

        if  len(stack) == 0:
            return "0"
        else:

            a = int("".join(stack))


            return str(a)


Comments

Submit
0 Comments
More Questions

1370A - Maximum GCD
149A - Business trip
34A - Reconnaissance 2
59A - Word
462B - Appleman and Card Game
1560C - Infinity Table
1605C - Dominant Character
1399A - Remove Smallest
208A - Dubstep
1581A - CQXYM Count Permutations
337A - Puzzles
495A - Digital Counter
796A - Buying A House
67A - Partial Teacher
116A - Tram
1472B - Fair Division
1281C - Cut and Paste
141A - Amusing Joke
112A - Petya and Strings
677A - Vanya and Fence
1621A - Stable Arrangement of Rooks
472A - Design Tutorial Learn from Math
1368A - C+=
450A - Jzzhu and Children
546A - Soldier and Bananas
32B - Borze
1651B - Prove Him Wrong
381A - Sereja and Dima
41A - Translation
1559A - Mocha and Math